/**
 * author: 564297479@qq.com
 * date: 2018.1.20
 * decription: 自定义JS日期控件
 * 前置知识:
 * new Date(year, month, 0)  表示上一个月的最后一天;
 * new Date()                表示当前的时间(年月日);
 * month,weekDay             都是从0基数开始计算的, 星期日也就是 0基数;
 * getDate()                 表示获取一周里面的天数具体星期几;
 * getFullYear()             表示获取年数(正常的年数);
 * getYear()                 表示获取年数(距离1970年相差的纯数字);
 */
(function(){
	var datepicker = {};
	datepicker.getMonthData = function(year, month) {//获取年月日的数据
		var ret = []; //用来返回结果的数组
		if (year == undefined || month == undefined) { //获取当前的时间
			var today = new Date();
			year = today.getFullYear();
			month = today.getMonth() + 1;
		}
		
		var firstDay = new Date(year, month - 1, 1);//上个月的第一天
		var firstDayWeekDay = firstDay.getDay(); //上个月的第一天是一周的第几天  获取一周的具体第几天, 周日是第0天, 从0开始的;
		if (firstDayWeekDay === 0) firstDayWeekDay = 7;
		//重新取值  这样取出的值不存在越界的问题
		year = firstDay.getFullYear();
		month = firstDay.getMonth() + 1;
		
		var lastDayOfLastMonth = new Date(year, month - 1, 0);//当月的第0天, 也就是上月的最后一天;
		var lastDayOfLastMonth = lastDayOfLastMonth.getDate();//上个月的最后一天是 一周里面的第几天;
		
		var preMonthDayCount = firstDayWeekDay - 1; //周几 减去一天
		var lastDay = new Date(year, month, 0);//上一个月的最后一天, 知道什么时候越界 到下一个月了,month-1是当月, month是指上一个月
		var lastDate = lastDay.getDate();
		
		for (var i=0; i<7*6; i++) {
			var date = i + 1 - preMonthDayCount;//当月对应的日期
			var showDate = date; //显示的哪一天
			var thisMonth = month; //当月
			
			if (date <= 0) {//上一月
				thisMonth = month - 1;
				showDate = lastDayOfLastMonth + date;
			} else if (date > lastDate) {//下一月
				thisMonth = month + 1;
				showDate = showDate - lastDate;
			}
			
			if (thisMonth === 0) thisMonth = 12; //上一年的12月份
			if (thisMonth === 13) thisMonth = 1; //下一年的1月份
			
			ret.push({
				month: thisMonth,
				date: date,
				showDate: showDate
			})
		}
		return {
			year: year,
			month: month,
			days: ret
		};
	}
	window.datepicker = datepicker;
})()
































